home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / 福袋 / SXDEF.H < prev    next >
Text File  |  1993-12-31  |  30KB  |  1,624 lines

  1. /*
  2.  * sxdef.h X68k SX_SYSTEM ver 2.01 Copyright 1993 SHARP/First Class Technology
  3.  */
  4. #ifndef    __SXDEF_H
  5. #define    __SXDEF_H
  6.  
  7. #include <class.h>
  8.  
  9. /************************************************/
  10. /*    メモリマン (Memory Man)            */
  11. /************************************************/
  12. /*
  13.  *    ポインタ、ハンドル (pointer, handle)
  14.  */
  15. typedef    void    *pointer;
  16. typedef    void    *handle;
  17. /*
  18.  *    ヒープレコード (Heap)
  19.  */
  20. typedef    struct Heap {
  21.     long    heapID;
  22.     long    memVer;
  23.     void    *heapData;
  24.     void    *bkLim;
  25.     long    moreMst;
  26.     int    (*fncCompact)();
  27.     int    (*fncPurge)();
  28.     int    (*fncMelt)();
  29.     int    (*fncGrowHeap)();
  30.     long    zcbFree;
  31.     long    hFstFree;
  32.     pointer    allocPtr;
  33.     pointer    sparePtr;
  34.     pointer    purgePtr;
  35.     char    memVis;
  36.     char    memPad;
  37.     short    memUsrFlag;
  38.     long    cntMemCompact;
  39.     long    cntMemPurge;
  40.     long    cntMemMelt;
  41.     long    cntPtrNew;
  42.     long    cntPtrDispose;
  43.     long    cntMstBind;
  44.     long    cntMstFree;
  45.     long    cntMst;
  46.     long    memUsrWord;
  47. } Heap;
  48. /*
  49.  *    ブロックレコード (Block)
  50.  */
  51. typedef    struct Block {
  52.     long    physicalSize;
  53.     union {
  54.         long    relativeHdl;
  55.         Heap    toHeap;
  56.     } heapReference;
  57.     UBYTE    property;
  58.     UBYTE    sizeCorrection;
  59.     UWORD    bkUsrFlag;
  60.     ULONG    bkUsrWord;
  61. } Block;
  62. /*
  63.  *    ブロック属性のマスク
  64.  */
  65. #define    BK_FREE        0x00
  66. #define    BK_ALLOC    0xFF
  67. #define    BK_IFMASK    0xF8
  68. #define    BK_IFTRAIL    0xF8
  69. #define    BK_IFNONREL    0xB8
  70. #define    BK_IFRELOC    0x88
  71. #define    BK_RELMASK    0xE0
  72. #define    BK_ALLREL    0x80
  73. /*
  74.  *    マスターポインタレコード (Master)
  75.  */
  76. typedef    struct Master {
  77.     void    *mlink;
  78.     short    mnumber;
  79.     char    mstate;
  80.     char    mpad;
  81. } Master;
  82. /*
  83.  *    メモリマンのエラーコード
  84.  */
  85. #define    ER_NOMEM    -1024
  86. #define    ER_ODDADR    -1023
  87. #define    ER_ZONEID    -1022
  88. #define    ER_NILPTR    -1021
  89. #define    ER_NILHDL    -1020
  90. #define    ER_EMPHDL    -1019
  91. #define    ER_NOTFRE    -1018
  92. #define    ER_NOTALO    -1017
  93. #define    ER_NOTNON    -1016
  94. #define    ER_NOTREL    -1015
  95. #define    ER_NOTLOC    -1014
  96. #define    ER_NOTUNL    -1013
  97. #define    ER_NOTPUR    -1012
  98. #define    ER_NOTUNP    -1011
  99. #define    ER_ILPROP    -1010
  100. #define    ER_DIFTYP    -1009
  101. #define    ER_LESSIZ    -1008
  102. #define    ER_SPLIT    -1007
  103. #define    ER_SIZEPU    -1006
  104. #define    ER_MEM        -1005
  105.  
  106. /************************************************/
  107. /*    エクセプションマン (Exception Man)    */
  108. /************************************************/
  109. /*
  110.  *    エクセプションレコード (ExcRec)
  111.  */
  112. typedef    struct ExcRec {
  113.     UWORD    excVector;
  114.     short    excMaxUsr;
  115.     int    (*excSetVector)();
  116.     int    (*excUsrEntry)();
  117.     void    *excUsrList;
  118.     long    excSaveEntry;
  119.     long    excOldEntry;
  120.     short    excNmbUsr;
  121.     short    excHandler[3][3];
  122. } ExcRec;
  123.  
  124. /************************************************/
  125. /*    マウスマン (Mouse Man)            */
  126. /************************************************/
  127. /*
  128.  *    マウスポインタレコード (MsRec)
  129.  */
  130. typedef    struct MsRec {
  131.     void    *msBitMap;
  132.     short    msMulti;
  133.     char    msRvsSwitch;
  134.     char    msRvsForBack;
  135.     char    msRvsLeftRight;
  136.     ULONG    msPosition;
  137.     struct {
  138.         char    msBlueSw;
  139.         char    msRedSw;
  140.     } msSwitch;
  141.     ULONG    msThePosition;
  142.     struct {
  143.         char    msTheBlueSw;
  144.         char    msTheRedSw;
  145.     } msTheSwitch;
  146.     short    msDeltaX;
  147.     short    msDeltaY;
  148.     short    msRestX;
  149.     short    msRestY;
  150.     ULONG    msOldPosition;
  151.     struct {
  152.         char    msOldBlueSw;
  153.         char    msOldRedSw;
  154.     } msOldSwitch;
  155.     long    msCache;
  156.     handle    msCsrHdl;
  157.     short    msBits    ;
  158.     short    msCsrLvl;
  159.     short    msDrawing;
  160.     char    msCached;
  161. } MsRec;
  162. /*
  163.  *    ポイントレコード (point, point_t)
  164.  */
  165. typedef    struct point {
  166.     short    x;
  167.     short    y;
  168. } point;
  169.  
  170. #ifdef    __POINT_T
  171. typedef    union point_t {
  172.     point    p;
  173.     long    x_y;
  174. } point_t;
  175. #else
  176. typedef    long    point_t;
  177. #endif
  178. /*
  179.  *    ポインタパターンレコード (TXcsr, GRcsr)
  180.  */
  181. typedef    struct TXcsr {
  182.     point_t    csrHot;
  183.     UWORD    csrMask[16];
  184.     UWORD    csrTXptn[4][16];
  185. } TXcsr;
  186.  
  187. typedef    struct GRcsr {
  188.     point_t    csrHot;
  189.     UWORD    csrGRptn[16][16];
  190. } GRcsr;
  191.  
  192. /************************************************/
  193. /*    アニメーションマン (Animation Man)    */
  194. /************************************************/
  195. /*
  196.  *    アニメーションレコード (AnimRec)
  197.  */
  198. typedef    struct AnimRec {
  199.     long    animNmbPtn;
  200.     long    animWait;
  201.     void    *animPtnList;
  202.     long    animVcount;
  203.     long    animPtnNo;
  204. } AnimRec;
  205. /*
  206.  *    配列キューレコード (AqRec)
  207.  */
  208. typedef    struct AqRec {
  209.     short    aqSize;
  210.     short    aqCount;
  211.     void    *aqStart;
  212.     void    *aqRead;
  213.     void    *aqWrite;
  214. } AqRec;
  215.  
  216. /************************************************/
  217. /*    キーボードマン (Keyboard Man)        */
  218. /************************************************/
  219. /*
  220.  *    キーボードレコード (KbRec)
  221.  */
  222. typedef    struct KbRec {
  223.     AqRec    kbAqRec;
  224.     ULONG    kbMdfy;
  225.     short    kbData;
  226.     char    kbHalt;
  227.     char    kbResetOn;
  228.     char    kbOldOn;
  229.     char    kbLedOn;
  230.     char    kbClickOn;
  231.     char    kbAssignOn;
  232.     char    kbRepeatOn;
  233.     char    kbRESET;
  234.     char    kbBREAK;
  235.     char    kbCOPY;
  236.     char    kbEX;
  237.     char    kbET;
  238.     char    kbSO;
  239.     char    kbDE;
  240.     char    kbD1;
  241.     char    kbD3;
  242.     char    kbpad[10];
  243.     UBYTE    kbMap[128];
  244.     UBYTE    kbAssign[128];
  245. } KbRec;
  246. /*
  247.  *    キーコード
  248.  */
  249. #define    KCMASK    0x7F
  250.  
  251. #define    _QK    0x11
  252. #define    _PK    0x1A
  253. #define    _SK    0x1F
  254. #define    _DK    0x20
  255. #define    _CK    0x2C
  256. #define    _NK    0x2F
  257.  
  258. #define    XF1K    0x55
  259. #define    XF2K    0x56
  260. #define    XF3K    0x57
  261. #define    XF4K    0x58
  262. #define    XF5K    0x59
  263. #define    KANAK    0x5A
  264. #define    ROMEK    0x5B
  265. #define    CDINK    0x5C
  266. #define    CAPSK    0x5D
  267. #define    INSK    0x5E
  268. #define    HIRAK    0x5F
  269. #define    ZENK    0x60
  270. #define    BREAKK    0x61
  271. #define    COPYK    0x62
  272. #define    F1K    0x63
  273. #define    F2K    0x64
  274. #define    F3K    0x65
  275. #define    F4K    0x66
  276. #define    F5K    0x67
  277. #define    F6K    0x68
  278. #define    F7K    0x69
  279. #define    F8K    0x6A
  280. #define    F9K    0x6B
  281. #define    F10K    0x6C
  282.  
  283. #define    SHFTK    0x70
  284. #define    CTRLK    0x71
  285. #define    OPT1K    0x72
  286. #define    OPT2K    0x73
  287.  
  288. /************************************************/
  289. /*    キーマン (Key Man)            */
  290. /************************************************/
  291. /*
  292.  *    キーレコード (KmRec)
  293.  */
  294. typedef    struct KmRec {
  295.     AqRec    kmAqRec;
  296.     ULONG    kmMdfy;
  297.     void    *kmMap;
  298.     ULONG    kmKbr;
  299.     ULONG    kmAscJob;
  300.     ULONG    kmCacheA;
  301.     ULONG    kmCacheK;
  302.     ULONG    kmCacheM;
  303. } KmRec;
  304.  
  305. /************************************************/
  306. /*    イベントマン (Event Man)        */
  307. /************************************************/
  308. /*
  309.  *    イベントレコード (event)
  310.  */
  311. typedef    struct event {
  312.     short    eWhat;
  313.     long    eWhom;
  314.     ULONG    eWhen;
  315.     point_t    eWhere;
  316.     ULONG    eHow;
  317. } event;
  318. /*
  319.  *    イベントコード、ビットマスク (eWhat)
  320.  */
  321. #define    E_IDLE        0
  322. #define    E_MSLDOWN    1
  323. #define    E_MSLUP        2
  324. #define    E_MSRDOWN    3
  325. #define    E_MSRUP        4
  326. #define    E_KEYDOWN    5
  327. #define    E_KEYUP        6
  328. #define    E_UPDATE    7
  329. #define    E_RESERVE1    8
  330. #define    E_ACTIVATE    9
  331. #define    E_RESERVE2    10
  332. #define    E_RESERVE3    11
  333. #define    E_SYSTEM1    12
  334. #define    E_SYSTEM2    13
  335. #define    E_USER1        14
  336. #define    E_USER2        15
  337.  
  338. #define    EM_MSLDOWN    0x0002
  339. #define    EM_MSLUP    0x0004
  340. #define    EM_MSRDOWN    0x0008
  341. #define    EM_MSRUP    0x0010
  342. #define    EM_KEYDOWN    0x0020
  343. #define    EM_KEYUP    0x0040
  344. #define    EM_UPDATE    0x0080
  345. #define    EM_RESERVE1    0x0100
  346. #define    EM_ACTIVATE    0x0200
  347. #define    EM_RESERVE2    0x0400
  348. #define    EM_RESERVE3    0x0800
  349. #define    EM_SYSTEM1    0x1000
  350. #define    EM_SYSTEM2    0x2000
  351. #define    EM_USER1    0x4000
  352. #define    EM_USER2    0x8000
  353. #define    EM_EVERY    0xFFFF
  354. /*
  355.  *    特殊キー状態のビット番号、マスク (eHow)
  356.  */
  357. #define    EH_SHFT        0
  358. #define    EH_CTRL        1
  359. #define    EH_OPT1        2
  360. #define    EH_OPT2        3
  361. #define    EH_KANA        8
  362. #define    EH_ROME        9
  363. #define    EH_CDIN        10
  364. #define    EH_CAPS        11
  365. #define    EH_INS        12
  366. #define    EH_HIRA        13
  367. #define    EH_ZEN        14
  368. #define    EH_XF1        16
  369. #define    EH_XF2        17
  370. #define    EH_XF3        18
  371. #define    EH_XF4        19
  372. #define    EH_XF5        20
  373.  
  374. #define    EHM_SHFT    0x000001
  375. #define    EHM_CTRL    0x000002
  376. #define    EHM_OPT1    0x000004
  377. #define    EHM_OPT2    0x000008
  378. #define    EHM_KANA    0x000100
  379. #define    EHM_ROME    0x000200
  380. #define    EHM_CDIN    0x000400
  381. #define    EHM_CAPS    0x000800
  382. #define    EHM_INS        0x001000
  383. #define    EHM_HIRA    0x002000
  384. #define    EHM_ZEN        0x004000
  385. #define    EHM_XF1        0x010000
  386. #define    EHM_XF2        0x020000
  387. #define    EHM_XF3        0x040000
  388. #define    EHM_XF4        0x080000
  389. #define    EHM_XF5        0x100000
  390. /*
  391.  *    ショートカットキー
  392.  */
  393. #define    SHORTCUT    EH_OPT1
  394.  
  395. #define    SCK_UNDO    0x2A
  396. #define    SCK_CUT        0x2B
  397. #define    SCK_COPY    0x2C
  398. #define    SCK_PASTE    0x2D
  399. #define    SCK_DELETE    0x2E
  400.  
  401. /************************************************/
  402. /*    リソースマン (Resource Man)        */
  403. /************************************************/
  404. /*
  405.  *    リソースマンのエラーコード
  406.  */
  407. #define    ER_RSCNOTFND    -2048
  408. #define    ER_EXISTTYPE    -2049
  409. #define    ER_EXISTID    -2050
  410. #define    ER_TYPENOTFND    -2051
  411. #define    ER_IDNOTFND    -2052
  412. #define    ER_ILLTYPE    -2053
  413. #define    ER_ILLID    -2054
  414. #define    ER_NILCURRENT    -2055
  415. #define    ER_NOTOPEN    -2056
  416. #define    ER_NILHANDLE    -2057
  417. #define    ER_HDLNOTFND    -2058
  418. #define    ER_CANTDETATCH    -2059
  419.  
  420. /************************************************/
  421. /*    グラフマン (Graph Man)            */
  422. /************************************************/
  423. /*
  424.  *    レクタングルレコード (rectangle)
  425.  */
  426. typedef struct rect {
  427.     short    left;
  428.     short    top;
  429.     short    right;
  430.     short    bottom;
  431. } rect;
  432. /*
  433.  *    リージョンレコード (region)
  434.  */
  435. typedef struct region {
  436.     int    size;
  437.     rect    bounds;
  438. } region;
  439. /*
  440.  *    ポリゴンレコード (polygon)
  441.  */
  442. typedef struct polygon {
  443.     int    size;
  444.     rect    bounds;
  445. } polygon;
  446. /*
  447.  *    LASCIIレコード
  448.  */
  449. typedef struct LASCII {
  450.     UBYTE    length;
  451.     char    Lstr[255];
  452. } LASCII;
  453. /*
  454.  *    レクタングルイメージレコード (rectangle image)
  455.  */
  456. typedef struct rectImg {
  457.     rect    bounds;
  458.     UBYTE    data;
  459. } rectImg;
  460. /*
  461.  *    tx16レコード
  462.  */
  463. typedef struct tx16 {
  464.     UINT    self;
  465.     int    length;
  466.     rect    bounds;
  467.     UWORD    palet[16];
  468.     UBYTE    data;
  469. } tx16;
  470.  
  471. #define    TX16sigWord    0x54583136
  472. /*
  473.  *    グラフスプリクト (gScript)
  474.  */
  475. typedef struct gScript {
  476.     int    size;
  477.     UWORD    version;
  478.     region    clipping;
  479. } gScript;
  480. /*
  481.  *    グラフスクリプトコマンド (gScript command)
  482.  */
  483. #define    GS_NOP        0
  484. #define    GS_REM        1
  485. #define    GS_BITMAP    2
  486. #define    GS_APAGE    3
  487. #define    GS_CLIP        4
  488. #define    GS_PMODE    5
  489. #define    GS_PSIZE    6
  490. #define    GS_FKIND    7
  491. #define    GS_FFACE    8
  492. #define    GS_FMODE    9
  493. #define    GS_FSIZE    10
  494. #define    GS_FORE        11
  495. #define    GS_BACK        12
  496. #define    GS_PPAT        13
  497. #define    GS_EXPAT    14
  498. #define    GS_LINE        15
  499. #define    GS_FRRECT    16
  500. #define    GS_FLRECT    17
  501. #define    GS_FRRRECT    18
  502. #define    GS_FLRRECT    19
  503. #define    GS_FROVAL    20
  504. #define    GS_FLOVAL    21
  505. #define    GS_FRARC    22
  506. #define    GS_FLARC    23
  507. #define    GS_FRPOLY    24
  508. #define    GS_FLPOLY    25
  509. #define    GS_FRRGN    26
  510. #define    GS_FLRGN    27
  511. #define    GS_STR        28
  512. #define    GS_PUT        29
  513. #define    GS_COPY        30
  514. #define    GS_FRNPOLY    31
  515. #define    GS_FLNPOLY    32
  516.  
  517. #define    GS_END        -1
  518. /*
  519.  *    TBMレコード
  520.  */
  521. typedef struct TBM {
  522.     int    page;
  523.     UWORD    aPage;
  524. } TBM;
  525. /*
  526.  *    ビットマップレコード (bitmap)
  527.  */
  528. typedef struct bitmap {
  529.     short    bmKind;
  530.     rect    bmRect;
  531.     int    base;
  532.     short    line;
  533.     union {
  534.         UWORD    bRatio;
  535.         TBM    tbm;
  536.     } opt;
  537. } bitmap;
  538. /*
  539.  *    グラフレコード (graph)
  540.  */
  541. typedef struct graph {
  542.     bitmap    *bmap;
  543.     rect    grRect;
  544.     int    *procs;
  545.     region    **visible;
  546.     region    **clipping;
  547.     short    drawLvl;
  548.     UWORD    penMode;
  549.     point_t    penLoc;
  550.     point_t    penSize;
  551.     short    *penPat;
  552.     short    *exPat;
  553.     short    workKind;
  554.     void    **workHdl;
  555.     UWORD    fgColor;
  556.     UWORD    bgColor;
  557.     short    fontKind;
  558.     UWORD    fontFace;
  559.     UWORD    fontMode;
  560.     point_t    fontSize;
  561. } graph;
  562. /*
  563.  *    ペンモード (penMode)
  564.  */
  565. #define    G_FORE        0x000
  566. #define    G_BACK        0x100
  567. #define    G_PPAT        0x200
  568. #define    G_EPAT        0x300
  569. /*
  570.  *    フォントの種類 (fontKind)
  571.  */
  572. #define    G_ROM12        0
  573. #define    G_ROM16        1
  574. #define    G_ROM24        2
  575. /*
  576.  *    飾り文字、ビット番号 (fontFace)
  577.  */
  578. #define    G_PLANE        0
  579. #define    G_BOLD        1
  580. #define    G_ITALIC    2
  581. #define    G_ULINE        4
  582. #define    G_OLINE        8
  583. #define    G_SHADOW    16
  584.  
  585. #define    GB_BOLD        0
  586. #define    GB_ITALIC    1
  587. #define    GB_ULINE    2
  588. #define    GB_OLINE    3
  589. #define    GB_SHADOW    4
  590. /*
  591.  *    ペンバッファ (pen)
  592.  */
  593. typedef struct pen {
  594.     point_t    loc;
  595.     point_t    size;
  596.     UWORD    mode;
  597.     short    *pat;
  598. } pen;
  599. /*
  600.  *    フォント (font)
  601.  */
  602. typedef char    fontImg[];
  603.  
  604. typedef struct fontTbl {
  605.     fontImg    *HA12;
  606.     fontImg    *ZS12;
  607.     fontImg    *HA16;
  608.     fontImg    *HS16;
  609.     fontImg    *QU16;
  610.     fontImg    *QL16;
  611.     fontImg    *QM16;
  612.     fontImg    *ZA16;
  613.     fontImg    *Z116;
  614.     fontImg    *Z216;
  615.     fontImg    *ZG16;
  616.     fontImg    *ZS16;
  617.     fontImg    *HA24;
  618.     fontImg    *HG24;
  619.     fontImg    *QU24;
  620.     fontImg    *QL24;
  621.     fontImg    *QM24;
  622.     fontImg    *ZA24;
  623.     fontImg    *Z124;
  624.     fontImg    *Z224;
  625.     fontImg    *ZG24;
  626.     fontImg    *ZS24;
  627. } fontTbl;
  628. /*
  629.  *    グラフ描画ルーチンのテーブル (gProc)
  630.  */
  631. typedef struct gProc {
  632.     int    (*gStr)();
  633.     int    (*gLine)();
  634.     int    (*gRect)();
  635.     int    (*gRRect)();
  636.     int    (*gOval)();
  637.     int    (*gArc)();
  638.     int    (*gPoly)();
  639.     int    (*gRgn)();
  640.     int    (*gCopy)();
  641.     void    (*gRsv1)();
  642.     void    (*gRsv2)();
  643.     int    (*gStrWidth)();
  644.     int    (*gStrLen)();
  645.     void    (*gRsv3)();
  646.     void    (*gRsv4)();
  647.     void    (*gRsv5)();
  648. } gProc;
  649. /*
  650.  *    ビッツレコード (bits)
  651.  */
  652. typedef    struct bits {
  653.     bitmap    bitsBmap;
  654.     point_t    bitsSize;
  655.     short    bitsLvl;
  656.     char    bitsRsv[16];
  657.     UBYTE    bitsData;
  658. } bits;
  659. /*
  660.  *    フォントリンク (fontLink)
  661.  */
  662. typedef    struct fontLink {
  663.     struct fontLink    *flNext;
  664.     short        flKind;
  665.     char        *flName;
  666.     int        (*flProc)();
  667.     int        *flMem;
  668.     int        flRsv;
  669. } fontLink;
  670. /*
  671.  *    フォント描画ルーチンのテーブル (fontProc)
  672.  */
  673. typedef    struct fontProc {
  674.     int    (*faceJob)();
  675.     int    (*putCharJob)();
  676. } fontProc;
  677. /*
  678.  *    フォント描画コマンド (font proc command)
  679.  */
  680. #define    FP_INIT        0
  681. #define    FP_TINI        1
  682. #define    FP_INFO        2
  683. #define    FP_DRAW        3
  684. #define    FP_LENGTH    4
  685. #define    FP_WIDTH    5
  686. #define    FP_REV        6
  687. #define    FP_RSV        7
  688.  
  689. #define    FP_MAX        7
  690. /*
  691.  *    ライン処理ルーチンのテーブル (hProc)
  692.  */
  693. typedef    struct hProc {
  694.     int    (*hLineInit)();
  695.     int    (*hCopyInit)();
  696.     int    (*hPutInit)();
  697. } hProc;
  698. /*
  699.  *    ライン処理レコード (hLineRec)
  700.  */
  701. typedef    struct    hLineRec {
  702.     void    (*hlSub)();
  703.     void    (*hlCall0)();
  704.     void    (*hlCall1)();
  705.     void    (*hlCall2)();
  706.     void    (*hlCall3)();
  707.     short    hlPofs;
  708.     short    hlPnext;
  709.     short    hlPmask;
  710.     char    hlPat[512];
  711. } hLineRec;
  712. /*
  713.  *    コピー処理レコード (hCopyRec)
  714.  */
  715. typedef    struct hcopyRec {
  716.     void    (*hcSub)();
  717.     void    (*hcCall0)();
  718.     void    (*hcCall1)();
  719.     void    (*hcCall2)();
  720.     void    (*hcCall3)();
  721.     short    hcNot0;
  722.     short    hcNot1;
  723.     short    hcNot2;
  724.     short    hcNot3;
  725.     short    hcSxofs;
  726.     short    hcDxofs;
  727.     int    hcSpage;
  728.     int    hcDpage;
  729.     short    hcRev;
  730. } hCopyRec;
  731. /*
  732.  *    リージョン処理ルーチンのテーブル (rgnProc)
  733.  */
  734. typedef    struct rgnProc {
  735.     void    (*andRgnLine)();
  736.     void    (*orRgnLine)();
  737.     void    (*diffRgnLine)();
  738.     void    (*xorRgnLine)();
  739. } rgnProc;
  740. /*
  741.  *    ニューポリゴンレコード (npoly)
  742.  */
  743. typedef struct npoly {
  744.     polygon    ***polyList;
  745. } npoly;
  746. /*
  747.  *    ニューポリゴン環境 (nPolyEnv)
  748.  */
  749. typedef struct nPolyEnv {
  750.     int    lineWidth;
  751.     int    capKind;
  752.     int    joinKind;
  753.     int    miterLimit;
  754. } nPolyEnv;
  755. /*
  756.  *    線端の形状
  757.  */
  758. #define    NP_BUTTCAP    0
  759. #define    NP_ROUNDCAP    1
  760. #define    NP_PROJECTCAP    2
  761. /*
  762.  *    結合の形状
  763.  */
  764. #define    NP_MITERJOIN    0
  765. #define    NP_ROUNDJOIN    1
  766. #define    NP_BEVELJOIN    2
  767. /*
  768.  *    オリジナルグラフスプリクト環境 (gsOneEnv)
  769.  */
  770. typedef struct gsOneEnv {
  771.     gScript    **gsOneHdl;
  772.     int    gsOneOfs;
  773.     rect    gsOneSrect;
  774.     rect    gsOneDrect;
  775.     graph    *gsOneGraph;
  776. } gsOneEnv;
  777. /*
  778.  *    分割ベジェ (splitedBezier)
  779.  */
  780. typedef struct splitedBezier {
  781.     long    a1;
  782.     long    c1;
  783.     long    c2;
  784.     long    a2;
  785.     long    c3;
  786.     long    c4;
  787.     long    a3;
  788. } splitedBezier, *splitedBezierPtr;
  789. /*
  790.  *    分割Bスプライン (splitedBSpline)
  791.  */
  792. typedef struct splitedBSpline {
  793.     long    a1;
  794.     long    c1;
  795.     long    a2;
  796.     long    c2;
  797.     long    a3;
  798. } splitedBSpline, *splitedBSplinePtr;
  799. /*
  800.  *    スクリーンの種類 (screen kind)
  801.  */
  802. #define    G_TXT        0
  803. #define    G_GRP        1
  804. #define    G_GR2        2
  805. #define    G_GR3        3
  806. /*
  807.  *    ドローモード (draw mode)
  808.  */
  809. #define    G_PSET        0
  810. #define    G_AND        1
  811. #define    G_OR        2
  812. #define    G_XOR        3
  813. #define    G_NPSET        4
  814. #define    G_NAND        5
  815. #define    G_NOR        6
  816. #define    G_NXOR        7
  817. #define    G_ADD        8
  818. #define    G_ADDLIM    9
  819. #define    G_SUB        10
  820. #define    G_SUBLIM    11
  821. #define    G_SELMAX    12
  822. #define    G_SELMIN    13
  823. #define    G_BLEND        14
  824. /*
  825.  *    プロットモード (plot mode)
  826.  */
  827. #define    G_STD        0
  828. #define    G_REV        1
  829. #define    G_HILITE    2
  830. #define    G_HILREV    3
  831. #define    G_ERACE        4
  832.  
  833. #define    G_MESH        6
  834. #define    G_MESREV    7
  835. #define    G_HIDDEN    8
  836. #define    G_HIDREV    9
  837. /*
  838.  *    テキストカラー (text color)
  839.  */
  840. #define    G_THRU        0
  841. #define    G_WHITE        8
  842. #define    G_LGRAY        9
  843. #define    G_DGRAY        10
  844. #define    G_BLACK        11
  845. #define    G_YELLOW    12
  846. #define    G_RED        13
  847. #define    G_GREEN        14
  848. #define    G_BLUE        15
  849.  
  850. /************************************************/
  851. /*    ウィンドウマン (Window Man)        */
  852. /************************************************/
  853. /*
  854.  *    ウィンドウレコード (window)
  855.  */
  856. typedef    struct window {
  857.     graph        wGraph;
  858.     UWORD        wKind;
  859.     char        wVisible;
  860.     char        wHilite;
  861.     char        wClose;
  862.     char        wStatus;
  863.     UWORD        wOption;
  864.     region        **wOutside;
  865.     region        **wInside;
  866.     region        **wUpdate;
  867.     long        (*wDef)();
  868.     long        wDefData;
  869.     LASCII        **wTitle;
  870.     UWORD        wTWidth;
  871.     long        wControl;
  872.     struct window    *wNext;
  873.     gScript        **wGScript;
  874.     long        wTask;
  875. } window;
  876. /*
  877.  *    ウィンドウの種類 (wKind)
  878.  */
  879. #define    WK_DIALOG    2
  880. #define    WK_USER        8
  881. #define    WK_GRAPHIC    16
  882. #define    WK_SUB        32
  883. /*
  884.  *    オプションコード、ビット番号、マスク (wOption)
  885.  */
  886. #define    WC_SCROLL    1
  887. #define    WC_CLIP        2
  888. #define    WC_DRIVE    4
  889. #define    WC_GBOX        8
  890.  
  891. #define    WCB_SCROLL    0
  892. #define    WCB_CLIP    1
  893. #define    WCB_DRIVE    2
  894. #define    WCB_GBOX    3
  895. #define    WCB_GBOXON    8
  896. #define    WCB_ARROW    9
  897.  
  898. #define    WC_GBOXON    0x0100
  899. #define    WC_ARROW    0x0200
  900. #define    WC_CLIPON    0x8000
  901. /*
  902.  *    ズーム (zoom)
  903.  */
  904. typedef struct zoom {
  905.     rect    stdRect;
  906.     rect    exdRect;
  907. } zoom;
  908. /*
  909.  *    テンプレート 'WIND'
  910.  */
  911. typedef    struct WIND {
  912.     rect    rwBounds;
  913.     short    rwDefID;
  914.     short    rwVisible;
  915.     short    rwCBox;
  916.     long    rwTaskID;
  917.     LASCII    rwTitle;
  918. } WIND;
  919. /*
  920.  *    リソース 'WDEF' ID
  921.  */
  922. #define    WI_STD        32
  923. #define    WI_STDG        48
  924. #define    WI_STD2        49
  925. #define    WI_STDG2    50
  926.  
  927. #define    WI_PLN        36
  928. /*
  929.  *    ウィンドウ定義関数コマンド
  930.  */
  931. #define    CMD_WDRAW    0
  932. #define    CMD_WWHERE    1
  933. #define    CMD_WCALC    2
  934. #define    CMD_WNEW    3
  935. #define    CMD_WDISP    4
  936. #define    CMD_WGROW    5
  937. #define    CMD_WGBOX    6
  938. #define    CMD_WFILL    7
  939. #define    CMD_WMOVE    8
  940. /*
  941.  *    ウィンドウパートコード
  942.  */
  943. #define    W_INDESK    0
  944. #define    W_ININSIDE    3
  945. #define    W_INDRAG    4
  946. #define    W_INGROW    6
  947. #define    W_INCLOSE    7
  948. #define    W_INZMOUT    8
  949. #define    W_INZMIN    9
  950. #define    W_INARROW    13
  951. #define    W_INCLPON    14
  952. #define    W_INCLPOFF    15
  953. #define    W_INDRIVE    16
  954.  
  955. /************************************************/
  956. /*    サブウィンドウマン(Sub Window man)    */
  957. /************************************************/
  958. /*
  959.  *    サブウィンドウレコード (subWindow)
  960.  */
  961. typedef    struct subWindow {
  962.     window    tWin;
  963.     long    tPrio;
  964. } subWindow;
  965.  
  966. /************************************************/
  967. /*    メニューマン (Menu Man)            */
  968. /************************************************/
  969. /*
  970.  *    メニューアイテム (mItem)
  971.  */
  972. typedef    struct mItem {
  973.     char    mSKey;
  974.     char    mCheck;
  975.     LASCII    mTitle;
  976. } mItem;
  977. /*
  978.  *    メニューアイテムリスト (mIList)
  979.  */
  980. typedef    struct mIList {
  981.     short    mILSize;
  982.     mItem    mILDate;
  983. } mIList;
  984. /*
  985.  *    メニューレコード (menu)
  986.  */
  987. typedef    struct menu {
  988.     short    mID;
  989.     short    mWidth;
  990.     short    mHight;
  991.     int    mProc;
  992.     UINT    mEnable;
  993.     long    mHandle;
  994.     mIList    mData;
  995. } menu;
  996. /*
  997.  *    メニュー定義関数コマンド
  998.  */
  999. #define    CMD_MDRAW    0
  1000. #define    CMD_MSEL    1
  1001. #define    CMD_MCALC    2
  1002. #define    CMD_MINIT    4
  1003. #define    CMD_MDISP    5
  1004. #define    CMD_MCHCK    6
  1005.  
  1006. /************************************************/
  1007. /*    コントロールマン (Control Man)        */
  1008. /************************************************/
  1009. /*
  1010.  *    コントロールレコード (control)
  1011.  */
  1012. typedef    struct control {
  1013.     struct control    *cNext;
  1014.     window        *cWindow;
  1015.     rect        cRect;
  1016.     char        cVisible;
  1017.     char        cHilite;
  1018.     short        cValue;
  1019.     short        cMin;
  1020.     short        cMax;
  1021.     int        (*cDef)();
  1022.     UWORD        cOption;
  1023.     long        cDefData;
  1024.     void        (*cProc)();
  1025.     long        cUser;
  1026.     LASCII        cTitle;
  1027. } control;
  1028. /*
  1029.  *    テンプレート 'CNTL'
  1030.  */
  1031. typedef    struct CTRL {
  1032.     rect    rcBounds;
  1033.     short    cValue;
  1034.     short    rcVisible;
  1035.     short    rcMax;
  1036.     short    rcMin;
  1037.     short    rcID;
  1038.     long    rcUser;
  1039.     LASCII    rcTitle;
  1040. } CTRL;
  1041. /*
  1042.  *    リソース 'CDEF' ID
  1043.  */
  1044. #define    CI_STDBTN    0
  1045. #define    CI_SELBTN    1
  1046. #define    CI_OTNBTN    2
  1047. #define    CI_SLDVOL    19
  1048. #define    CI_SLDBTN    20
  1049.  
  1050. #define    CI_SCLBRWH    64
  1051. #define    CI_SCLBRWV    65
  1052. #define    CI_SCRLBRH    66
  1053. #define    CI_SCRLBRV    67
  1054. /*
  1055.  *    コントロール定義関数コマンド
  1056.  */
  1057. #define    CMD_CDRAW    0
  1058. #define    CMD_CWHERE    1
  1059. #define    CMD_CCALC    2
  1060. #define    CMD_CINIT    3
  1061. #define    CMD_CDISP    4
  1062. #define    CMD_CPOS    5
  1063. #define    CMD_CTHUMB    6
  1064. #define    CMD_CDRAG    7
  1065. #define    CMD_CTRACK    8
  1066. /*
  1067.  *    コントロールパートコード
  1068.  */
  1069. #define    C_INBTTN    10
  1070. #define    C_INCHECK    11
  1071. #define    C_INUP        20
  1072. #define    C_INDOWN    21
  1073. #define    C_INPGUP    22
  1074. #define    C_INPGDOWN    23
  1075. #define    C_INTITLE    24
  1076. #define    C_INTHUMB    129
  1077.  
  1078. /************************************************/
  1079. /*    テキストマン (Text Man)            */
  1080. /************************************************/
  1081. /*
  1082.  *    テキストエディットレコード (tEdit)
  1083.  */
  1084. typedef    struct tEdit {
  1085.     rect    dest;
  1086.     rect    view;
  1087.     long    offsetH;
  1088.     long    offsetV;
  1089.     char    **HText;
  1090.     int    lenMax;
  1091.     int    length;
  1092.     int    rsv0;
  1093.     int    selStart;
  1094.     int    selEnd;
  1095.     int    selLine;
  1096.     int    selOffset;
  1097.     int    refCon;
  1098.     short    lineHeight;
  1099.     short    tabSize;
  1100.     short    just;
  1101.     char    drawMode;
  1102.     char    visible;
  1103.     long    locateH;
  1104.     long    locateV;
  1105.     graph    *InPort;
  1106.     int    caretTime;
  1107.     short    caretState;
  1108.     int    (*(*procs))();
  1109.     short    *funcCode;
  1110.     short    *ctrlCode;
  1111.     int    (*(*cprocs))();
  1112.     int    nColumns;
  1113.     int    nLines;
  1114.     int    **lineStarts;
  1115. } tEdit;
  1116. /*
  1117.  *    文字列処理ルーチンのテーブル (teStrFunc)
  1118.  */
  1119. typedef struct teStrFunc {
  1120.     int    (*OFF_InWid)();
  1121.     int    (*OFF_Width)();
  1122.     int    (*OFF_Draw)();
  1123.     int    (*OFF_UpDt)();
  1124.     int    (*OFF_UpDt2)();
  1125.     int    (*OFF_UpDt3)();
  1126.     int    (*OFF_Rev)();
  1127.     int    (*OFF_Scroll)();
  1128.     int    (*OFF_ScrollR)();
  1129.     int    (*OFF_FillR)();
  1130.     int    (*OFF_CLIP)();
  1131.     int    (*OFF_Caret)();
  1132.     int    (*OFF_DrEOF)();
  1133.     int    (*OFF_Str)();
  1134.     int    (*OFF_Sel)();
  1135.     int    (*OFF_FillRL)();
  1136.     void    (*OFF_Rsv1)();
  1137.     void    (*OFF_Rsv2)();
  1138.     void    (*OFF_Rsv3)();
  1139.     void    (*OFF_Rsv4)();
  1140. } teStrFunc;
  1141. /*
  1142.  *    編集履歴 (teHis)
  1143.  */
  1144. typedef    struct teHis {
  1145.     short    editon;
  1146.     int    editnLine;
  1147.     int    editStart;
  1148.     int    editLine;
  1149.     int    editLocateH;
  1150.     int    editLocateV;
  1151.     int    editLocateM;
  1152.     int    editCoLine;
  1153.     int    editCoDiff;
  1154. } teHis;
  1155. /*
  1156.  *    段落情報 (teColumn)
  1157.  */
  1158. typedef    struct teColumn {
  1159.     int    coPos;
  1160.     int    coLcnt;
  1161.     int    coLine;
  1162.     int    coOffset;
  1163.     int    coSize;
  1164.     int    coPtr;
  1165.     int    line;
  1166.     int    lineOffset;
  1167.     int    lineSize;
  1168.     int    linePtr;
  1169. } teColumn;
  1170. /*
  1171.  *    テキストマンのエラーコード
  1172.  */
  1173. #define    TM_EDITABORT    -10240
  1174. #define    TM_LINEOVER    -10239
  1175. #define    TM_LENOVER    -10238
  1176. #define    TM_PROHIBITEDIT    -10237
  1177. #define    TM_EDITERR    -10236
  1178.  
  1179. /************************************************/
  1180. /*    ダイアログマン (Dialog Man)        */
  1181. /************************************************/
  1182. /*
  1183.  *    ダイアログアイテム (dlgItem)
  1184.  */
  1185. typedef    struct dlgItem {
  1186.     long    dlgIHdl;
  1187.     rect    dlgIBounds;
  1188.     UBYTE    dlgIType;
  1189.     UBYTE    dlgISize;
  1190. /*    UWORD    dlgIData;    */
  1191. } dlgItem;
  1192. /*
  1193.  *    ダイアログアイテムタイプ、ビット番号 (dlgIType)
  1194.  */
  1195. #define    DT_USER        0
  1196. #define    DT_STDBTN    4
  1197. #define    DT_SELBTN    5
  1198. #define    DT_OTNBTN    6
  1199. #define    DT_RSCITM    7
  1200. #define    DT_STCTXT    8
  1201. #define    DT_EDTTXT    16
  1202. #define    DT_ICNITM    32
  1203. #define    DT_PICITM    64
  1204. #define    DT_DISABL    128
  1205.  
  1206. #define    DB_CTLITM    2
  1207. #define    DB_STCTXT    3
  1208. #define    DB_EDTTXT    4
  1209. #define    DB_ICNITM    5
  1210. #define    DB_PICITM    6
  1211. #define    DB_DISABL    7
  1212. /*
  1213.  *    ダイアログアイテムリスト (dlgIList)
  1214.  */
  1215. typedef    struct dlgIList {
  1216.     short    dlgILSize;
  1217.     short    dlgILData;
  1218. } dlgIList;
  1219. /*
  1220.  *    ダイアログレコード (dialog)
  1221.  */
  1222. typedef    struct dialog {
  1223.     window        dWindow;
  1224.     dlgIList    **dItems;
  1225.     tEdit        **dText;
  1226.     short        dTMan;
  1227.     short        dTMOpen;
  1228.     short        dReserve;
  1229. } dialog;
  1230. /*
  1231.  *    テンプレート 'DLOG'
  1232.  */
  1233. typedef    struct DLOG {
  1234.     rect    rdBounds;
  1235.     short    rdWID;
  1236.     short    rdVisible;
  1237.     short    rdCBox;
  1238.     long    rdTask;
  1239.     short    rdItems;
  1240.     LASCII    rdTitle;
  1241. } DLOG;
  1242.  
  1243. /************************************************/
  1244. /*    タスクマン (Task Man)            */
  1245. /************************************************/
  1246. /*
  1247.  *    タスク管理テーブル (task)
  1248.  */
  1249. typedef    struct task {
  1250.     char    name[90];
  1251.     LASCII    command;
  1252.     short    tskid;
  1253.     short    parentid;
  1254.     short    stmode;
  1255.     long    rsctype;
  1256.     short    rscid;
  1257.     short    state;
  1258.     long    *programPtr;
  1259.     long    **programHdl;
  1260.     long    **dataHdl;
  1261.     char    *envPtr;
  1262.     long    regkeep[18];
  1263.     short    commsendid;
  1264.     short    commrecvid;
  1265.     long    tickcount;
  1266.     long    commonHdl;
  1267.     long    rsv1[3];
  1268.     long    refCon;
  1269.     long    rscchain;
  1270.     short    rsv2[16];
  1271. } task;
  1272. /*
  1273.  *    タスクマンのステータス (state)
  1274.  */
  1275. #define    ST_EMPTY    0
  1276. #define    ST_ACTIVE    1
  1277. #define    ST_COMMUNICATE    2
  1278. #define    ST_SENDMES    3
  1279. #define    ST_SLEEP    4
  1280. #define    ST_STARTUP    5
  1281. #define    ST_LOAD        6
  1282. #define    ST_EXIT        7
  1283. /*
  1284.  *    タスクマンイベントレコード (tsevent)
  1285.  */
  1286. typedef    struct tsevent {
  1287.     short    what;
  1288.     long    whom;
  1289.     long    when;
  1290.     long    whom2;
  1291.     short    what2;
  1292.     short    tskid;
  1293. } tsevent;
  1294. /*
  1295.  *    タスクマンイベントコード (what2)
  1296.  */
  1297. #define    STARTUP        0
  1298. #define    ENDTSK        1
  1299. #define    CLOSEALL    2
  1300. #define    NOTICEEJECT    3
  1301. #define    DISKEJECT    4
  1302. #define    NOTICEFORMAT    5
  1303. #define    DISKFORMAT    6
  1304. #define    NOTICEDCOPY    7
  1305. #define    DISKCOPY    8
  1306. #define    DISKINSERT    9
  1307. #define    REMOVEDIR    10
  1308. #define    DELETEFILE    11
  1309. #define    DELETEVONAME    12
  1310. #define    MOVEFILE    13
  1311. #define    COPYFILE    14
  1312. #define    MAKEDIR        15
  1313. #define    CREATFILE    16
  1314. #define    CREATEVONAME    17
  1315. #define    OPENFILE    20
  1316. #define    CLOSEFILE    21
  1317. #define    CHMODFILE    22
  1318. #define    CLOSEPATH    30
  1319. #define    SAVE        31
  1320. #define    WINDOWSELECT    32
  1321. #define    NOTICEENDTSK    33
  1322. #define    TOSCRAP        50
  1323. #define    EMPTYTRASH    51
  1324. #define    FOCKCHD        62
  1325. #define    FOCKALL        63
  1326. #define    FOCKCELL    64
  1327. #define    FOCKNOTHEAD    65
  1328. #define    DRAGNOW        80
  1329. #define    DRAGEND        81
  1330. #define    CHANGEDRSC    90
  1331. #define    REQLOADRSC    104
  1332. #define    RESLOADRSC    105
  1333. /*
  1334.  *    ドライブ情報レコード (drinfo)
  1335.  */
  1336. typedef    struct drinfo {
  1337.     UBYTE    mediabyte;
  1338.     UBYTE    unitno;
  1339.     short    driveno;
  1340. } drinfo;
  1341. /*
  1342.  *    ドラッグレコード (drag)
  1343.  */
  1344. typedef    struct drag {
  1345.     long    length;
  1346.     void    **cellHdl;
  1347.     short    tskid;
  1348.     point_t    origen;
  1349.     long    imagePtr;
  1350. } drag;
  1351. /*
  1352.  *    スクラップレコード (scrap)
  1353.  */
  1354. typedef    struct scrap {
  1355.     long    length;
  1356.     void    **cellHdl;
  1357. } scrap;
  1358. /*
  1359.  *    ビルトインコマンド定義レコード (builtin)
  1360.  */
  1361. typedef    struct builtin {
  1362.     short    rscid;
  1363.     char    name[1+90];
  1364. } builtin;
  1365. /*
  1366.  *    ビルトインコマンドシステム予約(CMDS のID)
  1367.  */
  1368. #define    CMDSDIR        0
  1369. #define    CMDSCHD        1
  1370. #define    CMDSPINFO    2
  1371. #define    CMDSDINFO    3
  1372. #define    CMDSINFO    4
  1373. #define    CMDSCLO        5
  1374. #define    CMDSREN        6
  1375. #define    CMDSCLIP    7
  1376. #define    CMDSVDCP    8
  1377. #define    CMDSVFOR    9
  1378. #define    CMDSCOPY    10
  1379. #define    CMDSCSHL    11
  1380. #define    CMDSHENW    12
  1381. #define    CMDSTITL    13
  1382. /*
  1383.  *    アイコン管理レコード (icstate)
  1384.  */
  1385. typedef    struct icstate {
  1386.     rect    image;
  1387.     char    name[18+3];
  1388.     UBYTE    attr;
  1389.     long    opt1;
  1390.     long    opt2;
  1391.     UBYTE    mediabyte;
  1392.     UBYTE    unitno;
  1393.     short    iconid;
  1394.     char    *pathPtr;
  1395.     UBYTE    bitflag;
  1396.     UBYTE    drawMode;
  1397.     UBYTE    rsv[4];
  1398. } icstate;
  1399. /*
  1400.  *    アイコン定義レコード (ickind)
  1401.  */
  1402. typedef    struct ickind {
  1403.     long    type;
  1404.     short    id;
  1405.     short    attrib;
  1406.     short    mldown;
  1407.     short    menuid1;
  1408.     short    menuid2;
  1409.     char    name[1+90];
  1410.     char    execf[1+90];
  1411.     char    param[1+255];
  1412. } ickind;
  1413. /*
  1414.  *    オープンファイル名管理レコード (openfile)
  1415.  */
  1416. typedef    struct openfile {
  1417.     char    name[90];
  1418.     short    mode;
  1419.     short    id;
  1420. } openfile;
  1421. /*
  1422.  *    セルレコード (cell)
  1423.  */
  1424. typedef    struct cell {
  1425.     ULONG    kind;
  1426.     long    length;
  1427.     UBYTE    data[2];
  1428. } cell;
  1429. /*
  1430.  *    タスクマンのエラーコード
  1431.  */
  1432. #define    ER_ABORT    -8194
  1433. #define    ER_OBJX        -8193
  1434. #define    ER_NOTHEAD    -8192
  1435. #define    ER_NOTOBJECT    -8191
  1436. #define    ER_NOTLOAD    -8190
  1437. #define    ER_NOTPARA    -8189
  1438.  
  1439. #define    ER_FILENOTFND    -8161
  1440. #define    ER_SERCHBREAK    -8160
  1441. #define    ER_RSCROUTEERR    -8155
  1442.  
  1443. /************************************************/
  1444. /*    プリントマン(Print Man)            */
  1445. /************************************************/
  1446. /*
  1447.  *    プリントレコード (prRec)
  1448.  */
  1449. typedef    struct prRec {
  1450.     short    prPaperKind;
  1451.     short    prPaperOption;
  1452.     rect    prPaperRect;
  1453.     rect    prLimitRect;
  1454.     rect    prPageRect;
  1455.     char    prPaperRsv[ 8 ];
  1456.  
  1457.     short    prDocImage;
  1458.     short    prDocColumn;
  1459.     short    prDocLine;
  1460.     short    prDocTab;
  1461.     short    prDocHeight;
  1462.     char    prDocRsv[ 8 ];
  1463.  
  1464.     point_t    prRes;
  1465.     point_t    prANKSize;
  1466.     point_t    prKanjiSize;
  1467.     short    prColorKind;
  1468.     char    prPrnRsv[ 8 ];
  1469.  
  1470.     short    prManVer;
  1471.     char    prManRsv[ 8 ];
  1472.  
  1473.     short    prDrvVer;
  1474.     char    prDrvRsv[ 8 ];
  1475.  
  1476.     short    prMinPage;
  1477.     short    prMaxPage;
  1478.     long    prUserData;
  1479.     char    prUserRsv[ 8 ];
  1480.  
  1481.     short    prFstPage;
  1482.     short    prLstPage;
  1483.     short    prDupPage;
  1484.     short    prMode;
  1485.     short    prMask;
  1486.     char    prJobRsv[ 8 ];
  1487.  
  1488.     short    prPageCount;
  1489.     short    prDupCount;
  1490.     char    prWorkRsv[ 8 ];
  1491. } prRec;
  1492. /*
  1493.  *    用紙の種類 (prPaperKind)
  1494.  */
  1495. #define    P_FREE        0
  1496. #define    P_A3        1
  1497. #define    P_A3R        2
  1498. #define    P_A4        3
  1499. #define    P_A4R        4
  1500. #define    P_A5        5
  1501. #define    P_A5R        6
  1502. #define    P_B3        7
  1503. #define    P_B3R        8
  1504. #define    P_B4        9
  1505. #define    P_B4R        10
  1506. #define    P_B5        11
  1507. #define    P_B5R        12
  1508. #define    P_10x11        13
  1509. #define    P_15x11        14
  1510. #define    P_LETTER    15
  1511. #define    P_LETTERR    16
  1512. /*
  1513.  *    ペーパーオプション (prPaperOption)
  1514.  */
  1515. #define    P_NONE        0
  1516. #define    P_TRACTOR    1
  1517. #define    P_CUTSHEET    2
  1518. #define    P_LETSHEET    3
  1519. /*
  1520.  *    ビットイメージ出力 (prDocImage)
  1521.  */
  1522. #define    P_GAIJI        1
  1523. #define    P_RSV        2
  1524. #define    P_KANJI2    4
  1525. #define    P_KANJI1    8
  1526. #define    P_ANK        16
  1527.  
  1528. #define    PB_GAIJI    0
  1529. #define    PB_RSV        1
  1530. #define    PB_KANJI2    2
  1531. #define    PB_KANJI1    3
  1532. #define    PB_ANK        4
  1533. /*
  1534.  *    カラーの種類 (prColorKind)
  1535.  */
  1536. #define    PK_MONO        0
  1537. #define    PK_COLORBIT1    1
  1538. /*
  1539.  *    印刷モード、ビットマスク (prMode, prMask)
  1540.  */
  1541. #define    P_DRAFT        1
  1542. #define    P_COLOR        2
  1543.  
  1544. #define    PB_DRAFT    0
  1545. #define    PB_COLOR    1
  1546. /*
  1547.  *    プリンタドライバ (prtDrvr)
  1548.  */
  1549. typedef    struct prtDrvr {
  1550.     long    pType;
  1551.     long    pcSize;
  1552.     long    pExec;
  1553.     long    pdSize;
  1554.     long    pRsv[ 3 ];
  1555.     long    prtDrvrName;
  1556.     long    prtDrvrStart;
  1557.     long    prtDrvrType;
  1558.     short    prtDrvrVer;
  1559.     short    prtDrvrExt;
  1560. } prtDrvr;
  1561. /*
  1562.  *    プリンタ情報 (prtdInfo)
  1563.  */
  1564. typedef    struct prtdInfo {
  1565.     short    prtdID;
  1566.     short    prtdVer;
  1567.     char    prtdName[ 40 ];
  1568. } prtdInfo;
  1569. /*
  1570.  *    コントロール
  1571.  */
  1572. #define    PC_STAT        0
  1573. #define    PC_END        1
  1574. #define    PC_STOP        2
  1575. #define    PC_CONT        3
  1576. /*
  1577.  *    プリントマンのステータス
  1578.  */
  1579. #define    P_FINISH    0
  1580. #define    P_WORKING    1
  1581. #define    P_RESTING    2
  1582. #define    P_TIMEOUT    3
  1583. #define    P_ERROR        -1
  1584. /*
  1585.  *    プリンタコントロールコマンド
  1586.  */
  1587. #define    PD_RESET    0
  1588. #define    PD_CRLF        1
  1589. #define    PD_FF        2
  1590. #define    PD_STRING    3
  1591. #define    PD_BITIMAGE    4
  1592. #define    PD_GSCRIPT    5
  1593.  
  1594. /************************************************/
  1595. /*    フォントマン(Font Man)            */
  1596. /************************************************/
  1597. /*
  1598.  *    フォントレコード (fmRec)
  1599.  */
  1600. typedef    struct fmRec {
  1601.     short    fmKind;
  1602.     short    fmFace;
  1603.     point_t    fmSize;
  1604.     long    fmWork;
  1605.     long    fmRev;
  1606.     long    fmWidth;
  1607.     long    fmWhalf;
  1608.     long    fmHeight;
  1609.     short    fmExtra;
  1610.     long    fmXzoom;
  1611.     long    fmYzoom;
  1612. } fmRec;
  1613. /*
  1614.  *    フォントリスト (FontList)
  1615.  */
  1616. typedef struct FontList {
  1617.     short    id;
  1618.     short    type;
  1619.     short    mothoerID;
  1620.     char    FontName[26];
  1621. } FontList, *FontListPtr, **FontListHandle;
  1622.  
  1623. #endif
  1624.